package com.roc.admin.domain.service;

import com.roc.admin.domain.entity.Dept;

import java.util.List;

/**
 * 部门领域服务
 */
public interface DeptDomainService {
    
    /**
     * 创建部门
     *
     * @param dept 部门实体
     * @return 创建后的部门
     */
    Dept createDept(Dept dept);
    
    /**
     * 更新部门
     *
     * @param dept 部门实体
     * @return 更新后的部门
     */
    Dept updateDept(Dept dept);
    
    /**
     * 删除部门
     *
     * @param deptId 部门ID
     */
    void deleteDept(Long deptId);
    
    /**
     * 获取部门树
     *
     * @return 部门树
     */
    List<Dept> getDeptTree();
    
    /**
     * 根据角色ID获取部门树
     *
     * @param roleId 角色ID
     * @return 部门树
     */
    List<Dept> getDeptTreeByRoleId(Long roleId);
}
